class CreateRequisicoes < ActiveRecord::Migration
  
  def self.up
    # Tabela de requisições - Principal tabela do sistema. Guarda as requisições
    # cadastradas na aplicação e todos os dados relevacntes para elas
    create_table(:requisicoes) do |req|
      # Dados da requisição
      req.column :usuario_id, :integer, :null => false
      req.column :descricao, :string, :null => false, :limit => 4000
      req.column :uf_ac, :char, :null => false
      req.column :uf_ap, :char, :null => false
      req.column :uf_df, :char, :null => false
      req.column :uf_rr, :char, :null => false
      req.column :num_relativa, :string, :limit => 10
      req.column :cod_sna, :string, :limit => 10
      req.column :alt_corretiva, :char, :null => false
      req.column :alt_evolutiva, :char, :null => false
      req.column :alt_nova_func, :char, :null => false
      req.column :created_at, :datetime
      req.column :updated_at, :datetime
      # Estado atual da requisição
      req.column :estado, :string, :limit => 100, :null => false
      # Dados de banco de dados
      req.column :num_plano_exec, :string, :limit => 10
      req.column :obs_banco_dados, :string, :limit => 4000
      # Dados de suporte
      req.column :pasta, :string, :limit => 200
      req.column :obs_suporte, :string, :limit => 4000
      # Dados de desenvolvimento
      req.column :etc, :string, :limit => 200
      req.column :csu, :string, :limit => 200
      req.column :vis, :string, :limit => 200
      req.column :complexidade, :char
      req.column :tempo_desenv_est, :string, :limit => 10
      req.column :tecnologia_desenv, :string, :limit => 50
      req.column :data_desenv_limite, :datetime
      req.column :data_desenv_real, :datetime
      # Dados de certificação
      req.column :urgente, :char
      req.column :rcq, :string, :limit => 200
      req.column :obs_teste, :string, :limit => 4000
      req.column :data_cert_limite, :datetime
      req.column :data_cert_real, :datetime
      req.column :exige_autorizacao, :char
      req.column :resultado_cert, :char
      req.column :acao_tomcat, :char
      # Dados de produção
      req.column :tipo_atualizacao, :char
      req.column :data_atualizacao, :datetime
      req.column :obs_producao, :string, :limit => 4000
    end
    
    # Índices da tabela "requisicoes"
    add_index("requisicoes", "usuario_id", :name => "fk_requisicoes_usuario_id")
  end
  
  def self.down
    drop_table(:requisicoes)
  end
  
end